package com.jbh.apilibrary.api

import com.jbh.apilibrary.bean.*
import okhttp3.RequestBody
import retrofit2.http.*
import rx.Observable



interface ApiInterface {


    /***
     * 表单方式请求
     *
     * 登录
     */
    @FormUrlEncoded
    @POST(Api.login)
    fun loginApi(@Field("username") username:String,
                 @Field("password") password:String,) : Observable<BaseResponse<LoginResultBean>>


    /***
     * 退出登录
     *
     */
    @GET(Api.logout)
    fun logoutApi(): Observable<BaseResponse<Any>>


    /***
     * 注册
     */

    @FormUrlEncoded
    @POST(Api.register)
    fun registerApi(@Field("username") username:String,
                    @Field("password") password:String,
                    @Field("repassword") rePassWord:String): Observable<BaseResponse<LoginResultBean>>


    /***
     * 获取微信公众号
     */
    @GET(Api.wxarticle)
    fun wxarticleApi(): Observable<BaseResponse<List<WxarticleBean>>>

    /***
     *
     * 获取某一个微信公众号
     *
     */
    @GET("wxarticle/list/{url1}/{url2}/json")
    fun wxarticle_listApi(@Path("url1")  url1 : Int,
                          @Path("url2") url2 : Int): Observable<BaseResponse<WxarticleListBean>>

    /**
     * 首页banner
     */
    @GET(Api.banner)
    fun bannerApi():Observable<BaseResponse<List<BannerResultBean>>>

    /**
     * 首页列表文章
     */
    @GET("article/list/{page}/json")
    fun indexArticleApi(@Path("page") page : Int):Observable<BaseResponse<IndexArticleListResult>>

    /**
     * 体系类表
     */
    @GET(Api.tree)
    fun mainTreeApi():Observable<BaseResponse<List<TreeResult>>>
    /**
     * 体系下的文章
     */
    @GET("article/list/{page}/json?")
    fun mainTreeArticleApi(@Path("page") page : Int,@Query("cid") id:Int): Observable<BaseResponse<IndexArticleListResult>>

    /**
     * 导航类表
     */
    @GET(Api.navi)
    fun mainNaviApi():Observable<BaseResponse<List<TreeResult>>>



    /**
     * 问答
     */
    @GET("wenda/list/{page}/json")
    fun wendaApi(@Path("page") p : Int):Observable<BaseResponse<IndexArticleListResult>>


    /**
     * 个人积分
     */
    @GET(Api.Integral)
    fun integralApi():Observable<BaseResponse<IntegralBean>>

    /**
     * 个人积分列表
     *
     */
    @GET("lg/coin/list/{page}/json")
    fun integralListApi(@Path("page")page:Int) : Observable<BaseResponse<CommonListResult<IntegralBean>>>




    /**
     * 新消息
     * 未读消息
     */
    @GET("message/lg/unread_list/{page}/json")
    fun newMessageApi(@Path("page")page:Int):Observable<BaseResponse<MessageListResult>>

    /**
     * 已读消息
     *
     * 历史记录
     */
    @GET("message/lg/readed_list/{page}/json")
    fun readMessageApi(@Path("page")page:Int):Observable<BaseResponse<MessageListResult>>

    /**
     * 消息数量
     *
     */
    @GET("message/lg/count_unread/json")
    fun messageCountApi():Observable<BaseResponse<Any>>


    /**
     * 收藏文章列表
     */
    @GET("lg/collect/list/{page}/json")
    fun favoriteListApi(@Path("page")page:Int):Observable<BaseResponse<Any>>


    /**
     * 收藏站内文章
     */
    @POST("lg/collect/{id}/json")
    fun favoriteWenZApi(@Path("id")id:Int):Observable<BaseResponse<Any>>


    /**
     * 收藏站外文章
     */
    @POST("lg/collect/add/json")
    fun favoriteWenZAddApi():Observable<BaseResponse<Any>>



}